package com.testapp.bluetoothtest08.cipher.tool;



import com.testapp.bluetoothtest08.cipher.entity.QRn;

import java.math.BigInteger;


public class Parameter {
    public static final double Epsilon = 1.5;
    public static final int k = 64;//bit-length of hash function
    public static final int Lamtha = 70;
    public static final int Gama = 210;
    public static final int Lp = 128;//bit-length of p and q
    public static final int Lsigma = 201;//bit-length of sigma
    public static final int L = 10;//bit-length authentication times
    public static final BigInteger bigZero = new BigInteger("0");
    public static final BigInteger bigOne = new BigInteger("1");
    public static final BigInteger bigTwo = new BigInteger("2");


    public final BigInteger K_at = new BigInteger("1021");//authentication times
    public final BigInteger Sigma = new BigInteger("1762642546911968482827458040998732777272999261604850033473339");// order of prime group G
    public final BigInteger N = new BigInteger("335385140253831333385956515775875883603235799678420619488438070133908866089117");// p*q
    public final BigInteger B = new BigInteger("1056775065463972569047319647756");//generator of G
    public final BigInteger B1 = new BigInteger("923979480746937077996902169259");//generator of G
    public final BigInteger B2 = new BigInteger("641428606846771290837077628686");//generator of G
    public final BigInteger Range1left = new BigInteger("-590295810358705651712");//-2^(lamtha-1)
    public final BigInteger Range1right = new BigInteger("590295810358705651712");//2^(lamtha-1)
    public final BigInteger Range2left = new BigInteger("-881321273455984241413729020499366388636499630802425016736669");//-(sigma-1)/2
    public final BigInteger Range2right = new BigInteger("881321273455984241413729020499366388636499630802425016736669");//(sigma-1)/2
    public final BigInteger Range3left = new BigInteger("0");//0
    public final BigInteger Range3right = new BigInteger("1023");//2^l-1
    public final BigInteger Range4left = new BigInteger("1645504557321206042154969182557350504982734685041959145937305600");//2^gama-2^lamtha
    public final BigInteger Range4right = new BigInteger("1645504557321206042154969182557350504982737046225200580759912448");//2^gama+2^lamtha
    public final BigInteger Range5left = new BigInteger("-21778071482940061660475383254915754229760");//-2^(k+lamtha)+2^(lamtha)
    public final BigInteger Range5right = new BigInteger("1762642546911968482849236112481672838933474644859765787703098");//(sigma-1)+2^(k+lamtha)-2^(lamtha)
    public final BigInteger P_ = new BigInteger("276692775757010081759103115799837229161");
    public final BigInteger Q_ = new BigInteger("303030264646631513709962077247339489639");
    private final BigInteger P = new BigInteger("553385551514020163518206231599674458323");
    private final BigInteger Q = new BigInteger("606060529293263027419924154494678979279");
    public final BigInteger OrderN = new BigInteger("335385140253831333385956515775875883602076353597613336297499939747814512651516");
    public final BigInteger OrderSignma = new BigInteger("1762642546911968482827458040998732777272999261604850033473338");
    public QRn Qrn = new QRn();
    public final int EpisilonLamK = 201;
    public final int EpisilonLsigmaK = 397;
    public final int EpisilonLK = 111;
    public final int EpisilonGamaLamK = 516;
    public final int EpisilonDoulK = 126;
    public final int EpisilonLamLK = 216;
    public final int EpisilonDouLsigK = 699;

    public static void main(String[] args) {
        BigInteger k = new BigInteger("98691018444847823267101803477412614156996145294076677020243499398673585917231");
        System.out.println(k.mod(new BigInteger("335385140253831333385956515775875883603235799678420619488438070133908866089117")));
    }

}
